<?php
namespace frontend\controllers;

use Yii;
use yii\helpers\BaseJson;
include_once dirname(Yii::$app->basePath) . '/frontend/web/uc_client/client.php';

/**
 * 前台用户管理[登录，退出]
 *
 * @author jois
 */
class UserController extends BaseController
{

    /**
     * 用户登录页面及登录处理
     */
    public function actionLogin()
    {
        header('Content-Type:text/html;charset=utf-8');
        $post = Yii::$app->request->post();
        if (Yii::$app->request->isPost && ! empty($post)) {
            // 通过接口判断登录帐号的正确性，返回值为数组
            list ($userid, $username, $password, $email) = uc_user_login($post['username'], $post['password']);

            if ($userid > 0) {
                // 生成同步登录的代码
                $ucsynlogin = uc_user_synlogin($userid);

                // 此处可以采用相关的加密算法，目前简单做
                Yii::$app->session['userid'] = $userid;
                Yii::$app->session['username'] = $username;

                // 需要携带uc返回的javascript的html代码到页面中才可以实现同步
                return BaseJson::encode([
                    'ucsynlogin' => $ucsynlogin
                ]);
            } elseif ($userid == - 1) {
                return '用户不存在';
            } elseif ($userid == - 2) {
                return '用户名或密码不正确';
            } else {
                return '错误未定义';
            }
        }
        // 跳转到登录页
        return $this->render('login');
    }

    /**
     * 用户登出
     */
    public function actionLogout()
    {
        $ucsynclogout = uc_user_synlogout();
        unset(Yii::$app->session['userid'], Yii::$app->session['username']);
        // return '退出成功' . $ucsynclogout . '<br><a href="' . $_SERVER['PHP_SELF'] . '">继续</a>';
        return $ucsynclogout . '<script>alert("退出成功");history.go(-1);</script>';
    }

    /**
     * 用户注册
     */
    public function actionRegister()
    {
        header('Content-Type:text/html;charset=utf-8');
        $get = Yii::$app->request->get();
        $post = Yii::$app->request->post();
        if (Yii::$app->request->isPost && ! empty($post)) {
            // 验证是否同意协议
            if (! isset($post['is_agree'])) {
                return '<script>alert("您只有同意二狐的协议之后才能注册哦！");history.go(-1);</script>';
            }

            // 验证密码的位数
            if (strlen($post['password']) < 6 || strlen($post['password']) > 15) {
                return '<script>alert("密码必须是介于6~15位之间的字符");history.go(-1);</script>';
            }

            if (Yii::$app->request->get('phone', false)) {
                // 通过手机号注册, 验证手机号
                if (! is_mobile($post['username'])) {
                    return '<script>alert("手机号格式非法");history.go(-1);</script>';
                }
                // 验证手机验证码
                if (! $this->checkSms($post['username'], $post['captcha'])) {
                    return '<script>alert("手机短信验证码验证错误");history.go(-1);</script>';
                }
            } else {
                if ($post['password'] !== $post['password_confirm']) {
                    return '<script>alert("两次密码输入的不相同！");history.go(-1);</script>';
                }
                // 普通注册，用户名不能是手机号，至少手机号要验证，和手机做区别
                if (is_mobile($post['username'])) {
                    return '<script>alert("普通注册请勿填写手机号，请您用手机号注册方式");history.go(-1);</script>';
                }
            }

            // 注册到ucenter的用户中心
            $userid = uc_user_register($post['username'], $post['password'], $post['username'] . '@pipaw.com');
            if ($userid == - 1) {
                return '<script>alert("用户名不合法");history.go(-1);</script>';
            } elseif ($userid == - 2) {
                return '<script>alert("包含要允许注册的词语");history.go(-1);</script>';
            } elseif ($userid == - 3) {
                return '<script>alert("用户名已经存在");history.go(-1);</script>';
            } elseif ($userid == - 4) {
                return '<script>alert("Email 格式有误");history.go(-1);</script>';
            } elseif ($userid == - 5) {
                return '<script>alert("Email 不允许注册");history.go(-1);</script>';
            } elseif ($userid == - 6) {
                return '<script>alert("该 Email 已经被注册");history.go(-1);</script>';
            } elseif ($userid <= 0) {
                return '<script>alert("未定义");history.go(-1);</script>';
            } else {
                // 注册成功，踢出原登陆者，登录此用户，并回到首页
                $ucsynlogin = uc_user_synlogin($userid);
                // 此处可以采用相关的加密算法，目前简单做
                Yii::$app->session['userid'] = $userid;
                Yii::$app->session['username'] = $post['username'];
                // return '注册并登录成功' . $ucsynlogin . '<br><a href="' . $_SERVER['PHP_SELF'] . '">继续</a>';
                return $ucsynlogin . '<script>alert("注册成功");window.location="/";</script>';
            }
        }

        // 跳转到注册页
        if (Yii::$app->request->get('phone', false)) {
            return $this->render('register-by-phone');
        }
        return $this->render('register');
    }

    /**
     * 个人中心
     */
    public function actionCenter()
    {
        // 获取ucenter的用户ID
        $info = uc_get_user(Yii::$app->session['username']);
        if (is_array($info)) {
            // 跳转到my.92fox的个人中心，并保持同步登录。因my.92fox之前仅针对app开发，所以都需要sid验签，触屏版或pc版过去，则无需验证，标记为issid=0
            //header('Location: http://my.92fox.com/index.php?r=Account/index&issid=0&uid=' . $info[0]);
            header('Location: http://passport.92fox.com/m/site/index');
        }
        return '<script>alert("用户不存在");history.go(-1);</script>';
    }

    /**
     * 充值导航链接
     */
    public function actionPayment()
    {
        // 获取ucenter的用户ID
        $info = uc_get_user(Yii::$app->session['username']);
        if (is_array($info)) {
            // 跳转到passport.92fox的个人中心，并保持同步登录。无需验证，标记为issid=0
            //header('Location: http://passport.92fox.com/payment/recharge/index?username=' . Yii::$app->session['username'] . '&time=' . time() . '&merchantAppId=0&issid=0&uid=' . $info[0]);
            header('Location: http://passport.92fox.com/m/recharge/home');
        }
        return '<script>alert("用户不存在或登录未成功");history.go(-1);</script>';
    }

    /**
     * 客服导航链接
     */
    public function actionHelp()
    {
        // 获取ucenter的用户ID
        $info = uc_get_user(Yii::$app->session['username']);
        if (is_array($info)) {
            // 跳转到my.92fox的个人中心，并保持同步登录。因my.92fox之前仅针对app开发，所以都需要sid验签，触屏版或pc版过去，则无需验证，标记为issid=0
            header('Location: http://my.92fox.com/index.php?r=Account/HelpCenter&issid=0&uid=' . $info[0]);
        }
        return '<script>alert("用户不存在或登录未成功");history.go(-1);</script>';
    }
}
